package com.leo.chapter06;

import java.util.ArrayList;
import java.util.List;

/**
 * 串行的页面渲染器
 * @author xuexiaolei
 * @version 2017年10月15日
 */
public class SingleThreadRenderer {
    void renderPage(CharSequence source){
        renderText(source);//渲染文字
        //下载图片
        List<ImageData> imageData = new ArrayList<>();
        for (ImageInfo imageInfo : scanForImageInfo(source)){
            imageData.add(imageInfo.downloadImage());
        }
        //渲染图片
        for (ImageData data : imageData){
            renderImage(data);
        }
    }

    private void renderImage(ImageData data) {
        System.out.println("正在渲染图片");
    }

    private ImageInfo[] scanForImageInfo(CharSequence source) {
        return new ImageInfo[]{};
    }

    private void renderText(CharSequence source) {
        System.out.println("正在渲染文字");
    }

    class ImageData{}
    class ImageInfo{
        public ImageData downloadImage(){
            System.out.println("下载图片中");
            try {
                Thread.sleep(1000);//很浪费时间的
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            return new ImageData();
        }
    }
}
